//
// Created by yuping.li on 10/18/24.
//

#ifndef LED_INDICATOR_HPP_
#define LED_INDICATOR_HPP_

#include "task.hpp"

class LedIndicatorTask : public Task {
 public:
  LedIndicatorTask(uint32_t flash_period, GPIO_TypeDef *gpiox, uint16_t gpio_pin) :
    m_gpiox(gpiox), m_gpio_pin(gpio_pin) {
    period_ms = flash_period;
  }
  void period_task() override {
    HAL_GPIO_TogglePin(m_gpiox, m_gpio_pin);
  }

 protected:
  GPIO_TypeDef *m_gpiox{nullptr};
  uint16_t m_gpio_pin{};
};

#endif //LED_INDICATOR_HPP_
